// 登录和验证的接口
var express = require('express')
var router = express.Router()

// 导入jwt包
const jwt = require('jsonwebtoken')
// 定义统一的加密密钥
const secretKey = 'guanggu'

const { getAll, getById, exec } = require('../db')

// 通过客户端发送的用户名和密码来操作数据库
// post
router.post('/', async (req, res) => {
  // console.log(req.body)
  const { username, password } = req.body
  let sqlusername = `select * from gg_user where user_name = '${username}'`
  const data1 = await exec(sqlusername)
  console.log(data1[0].user_type)
  if (data1 == false) {
    // 用户名不存在,则发送提示信息
    res.send({
      code: 401,
      msg: '该用户不存在',
      result: data1,
    })
    return
  }
  // 用户名存在则校验密码
  if (data1[0]['user_password'] != password) {
    // 如果输入的密码与数据库的密码不匹配
    res.send({
      code: 402,
      msg: '密码不正确',
      result: data1,
    })
    return
  }
  // 用户名和密码都正确,则说明登陆成功, 需要向客户端发送token
  // 第一个参数是用户对象,第二个参数是加密密钥,第三个参数是配置对象
  const tokenString = jwt.sign(
    {
      username: username,
      password: password,
    },
    secretKey,
    {
      // 设置token的过期时间,以秒为单位
      expiresIn: 10 * 10000000 * 1,
      //or
      //expiresIn: "10 days"
    }
  )
  /* 登录验证成功向前台发送成功码，用户类型，和token */
  res.send({
    code: 0,
    userType: data1[0].user_type,
    token: tokenString,
  })
})

module.exports = router
